Software testing accounts for a substantial portion of the software development life cycle as well as the total cost of a software development project. Software testing can include test scenario creation, test input data creation, and test execution. Effective software testing is critical to providing high quality software that meets established functional requirements and is free of bugs and defects.
Meaningful and exhaustive test input data sets can increase the effectiveness of software testing. However, currently, test input data is often manually created through an expensive process that requires significant resources and time and that is susceptible to error. Additionally, current techniques often produce test input data that is not comprehensive with respect to the possible data types and/or properties of the software input variables.